package com.huitu.whht.base.core.api.geo.stat.entities;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.huitu.whht.api.core.common.base.BaseQo;
import com.huitu.whht.api.core.common.base.MyLocalDateTimeDeserializer;
import com.huitu.whht.api.core.common.base.MyLocalDateTimeSerializer;
import com.huitu.whht.api.core.common.util.TmType;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.time.LocalDateTime;
import java.util.List;

@Builder
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class GeoStatQo extends BaseQo {
    private static final long serialVersionUID = 4L;
    /**
     * 测站代码
     */
    private String stcd;

    /**
     * (数组)测站代码
     */
    private List<String> stcdList;
    /**
     * 测站名称
     */
    private String stNm;
    /**
     * (数组)测站类别
     */
    private List<String> stTpList;
    /**
     * 所在地
     */
    private String loc;
    /**
     * (数组)测站岸别
     */
    private List<String> stbkList;
    /**
     * (数组)水流流向
     */
    private List<String> flowDirList;
    /**
     * (数组)基面类型
     */
    private List<String> datTpList;
    /**
     * (最小)基面高程
     */
    private Double datElevMin;
    /**
     * (最大)基面高程
     */
    private Double datElevMax;
    /**
     * (最小)修正基值
     */
    private Double modBasValMin;
    /**
     * (最大)修正基值
     */
    private Double modBasValMax;
    /**
     * (数组)修正参数
     */
    private List<Double> modParaList;
    /**
     * (数组)监测方式A
     */
    private List<String> monTpAList;
    /**
     * (数组)监测方式B
     */
    private List<String> monTpBList;
    /**
     * (数组)运行状况
     */
    private List<String> runCondList;
    /**
     * (数组)管理单位代码
     */
    private List<String> engManCdList;
    /**
     * 管理单位代码
     */
    private String engManCd;
    /**
     * (数组)拼音码
     */
    private List<String> pinYinCdList;
    /**
     * 拼音码
     */
    private String pinYinCd;
    /**
     * (开始时间)时间戳
     */
    @JsonDeserialize(using = MyLocalDateTimeDeserializer.class)
    @JsonSerialize(using = MyLocalDateTimeSerializer.class)
    private LocalDateTime tsBgTm;
    /**
     * (结束时间)时间戳
     */
    @JsonDeserialize(using = MyLocalDateTimeDeserializer.class)
    @JsonSerialize(using = MyLocalDateTimeSerializer.class)
    private LocalDateTime tsEdTm;
    /**
     * 备注
     */
    private String nt;


    /**
     * (开始时间)时间戳
     */
    @JsonDeserialize(using = MyLocalDateTimeDeserializer.class)
    @JsonSerialize(using = MyLocalDateTimeSerializer.class)
    private LocalDateTime sptBgTm;
    /**
     * (结束时间)时间戳
     */
    @JsonDeserialize(using = MyLocalDateTimeDeserializer.class)
    @JsonSerialize(using = MyLocalDateTimeSerializer.class)
    private LocalDateTime sptEdTm;

    /**
     * 时间类型
     */
    private TmType tmType;
}
